package org.itboys.mobile.entity.mysql;




import org.itboys.mysql.entity.BaseMySqlEntity;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 作者：jiangxiong
 * 日期：2017年10月26日
 * 联系方式 ：empty90911@126.com
 * 天街_消费卡_记录_实体
 */
public class TianJieWalletRecord extends BaseMySqlEntity {
	
	//基础属性
	private Long memberId;//用户ID
    private Long walletId;//钱包ID
    private Integer type;//记录类型。记录类型。1，充值，2，托管区块链，3，游戏充值，4，拨付，6退出区块链-返还本金，7，退出区块链-返还收益，8，推荐收益，9，释放待释放金额。10.提现

    private String remark;//记录类型备注
    private BigDecimal ableAmount;//当前可用金额
    private BigDecimal amount;//记录金额
    private Integer status;//状态。1生效（支付回掉后），0无效（支付前），
    //提现相关属性
    private Long accountId;//提现账号
    private String accountNo;//提现账号
    private String accountName;;//账户姓名
    private String accountBank;//提现银行
    private Integer accountStatus;//提现状态 1，申请中，2，已通过，3，已驳回
    private BigDecimal accountReleaseAmount;//提现的已释放金额。周薪
    private BigDecimal accountCashAmount;//提现的日薪金额。推荐
    private BigDecimal accountProfitAmount;//提现的理财金额。理财。2017年12月16日废弃
    //2017年12月16日
    private BigDecimal accountBitcoinPrice;//提比申请时，比特币交易价格
    private BigDecimal accountBitcoinNumber;//提比申请时，比特币交易数量
    private Integer isRelease;//是否创建过释放计划
    private Date releaseTime;//充值金额释放时间
    //交易相关
    private String memberName;//用户名称。动态查询
    private String memberMobile;//用户手机号。动态查询
    public TianJieWalletRecord() {
    }

    public TianJieWalletRecord(Long memberId, Long walletId, Integer type, String remark, BigDecimal ableAmount,BigDecimal amount, Integer status) {
        this.memberId = memberId;
        this.walletId = walletId;
        this.type = type;
        this.remark = remark;
        this.ableAmount=ableAmount;
        this.amount = amount;
        this.status = status;
    }

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public Long getWalletId() {
        return walletId;
    }

    public void setWalletId(Long walletId) {
        this.walletId = walletId;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public BigDecimal getAbleAmount() {
        return ableAmount;
    }

    public void setAbleAmount(BigDecimal ableAmount) {
        this.ableAmount = ableAmount;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getAccountId() {
        return accountId;
    }

    public void setAccountId(Long accountId) {
        this.accountId = accountId;
    }

    public String getAccountNo() {
        return accountNo;
    }

    public void setAccountNo(String accountNo) {
        this.accountNo = accountNo;
    }

    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

    public String getAccountBank() {
        return accountBank;
    }

    public void setAccountBank(String accountBank) {
        this.accountBank = accountBank;
    }

    public Integer getAccountStatus() {
        return accountStatus;
    }

    public void setAccountStatus(Integer accountStatus) {
        this.accountStatus = accountStatus;
    }

    public BigDecimal getAccountReleaseAmount() {
        return accountReleaseAmount;
    }

    public void setAccountReleaseAmount(BigDecimal accountReleaseAmount) {
        this.accountReleaseAmount = accountReleaseAmount;
    }

    public BigDecimal getAccountCashAmount() {
        return accountCashAmount;
    }

    public void setAccountCashAmount(BigDecimal accountCashAmount) {
        this.accountCashAmount = accountCashAmount;
    }

    public BigDecimal getAccountProfitAmount() {
        return accountProfitAmount;
    }

    public void setAccountProfitAmount(BigDecimal accountProfitAmount) {
        this.accountProfitAmount = accountProfitAmount;
    }

    public BigDecimal getAccountBitcoinPrice() {
        return accountBitcoinPrice;
    }

    public void setAccountBitcoinPrice(BigDecimal accountBitcoinPrice) {
        this.accountBitcoinPrice = accountBitcoinPrice;
    }

    public BigDecimal getAccountBitcoinNumber() {
        return accountBitcoinNumber;
    }

    public void setAccountBitcoinNumber(BigDecimal accountBitcoinNumber) {
        this.accountBitcoinNumber = accountBitcoinNumber;
    }

    public String  getAccountStatusStr(){
        String accountStatusStr= "";
        if(accountStatus==null)return accountStatusStr;

        switch (accountStatus) {
            case 1:
                accountStatusStr="申请中";
                break;
            case 2:
                accountStatusStr="已通过";
                break;
            case 3:
                accountStatusStr="已驳回";
                break;
            default:
                break;
        }
        return accountStatusStr;
    }
    public String  getTypeStr(){
        String typeStr= "";
        if(type==null)return typeStr;

        switch (type) {
            case 1:
                typeStr="充值";
                break;
            case 2:
                typeStr="托管区块链";
                break;
            case 3:
                typeStr="游戏充值";
                break;
            case 4:
                typeStr="拨付";
                break;
            case 6:
                typeStr="退出区块链-返还本金";
                break;
            case 7:
                typeStr="退出区块链-返还收益";
                break;
            case 8:
                typeStr="业绩分成";
                break;
            case 9:
                typeStr="释放待释放金额";
                break;
            case 10:
                typeStr="提现";
                break;
            case 11:
                typeStr="消费";
                break;

            default:
                break;
        }
        return typeStr;
    }
    public Integer getIsRelease() {
        return isRelease;
    }

    public void setIsRelease(Integer isRelease) {
        this.isRelease = isRelease;
    }

    public Date getReleaseTime() {
        return releaseTime;
    }

    public void setReleaseTime(Date releaseTime) {
        this.releaseTime = releaseTime;
    }

    public String getMemberName() {
        return memberName;
    }

    public void setMemberName(String memberName) {
        this.memberName = memberName;
    }

    public String getMemberMobile() {
        return memberMobile;
    }

    public void setMemberMobile(String memberMobile) {
        this.memberMobile = memberMobile;
    }
}
